<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>黑客帝国文字下落</title>
    <style>
        html, body {margin:0; padding:0; background-color:#000;}
    </style>
    <script src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<canvas id="matrix" height="100%" width="100%"></canvas>
<script type="text/javascript">
    //文字
    var txts = "0123456789!@#$%^&*()~_+℃☆○※";
    //转为数组
    txts = txts.split("");
    var matrix=document.getElementById("matrix");
    var context=matrix.getContext("2d");
    matrix.height=window.innerHeight;
    matrix.width=window.innerWidth;
    var drop=[];
    var font_size=24;
    var columns=matrix.width/font_size;
    for(var i=0;i<columns;i++)
        drop[i]=1;

    function drawMatrix(){
        context.fillStyle="rgba(0, 0, 0, 0.09)";
        context.fillRect(0,0,matrix.width,matrix.height);

        context.fillStyle="green";
        context.font=font_size+"px";
        for(var i=0;i<columns;i++){
            //随机取要输出的文字
            var text = txts[Math.floor(Math.random()*txts.length)];
            //输出文字，注意坐标的计算
            context.fillText(text,i*font_size,drop[i]*font_size);/*get 0 and 1*/

            if(drop[i]*font_size>(matrix.height*2/3)&&Math.random()>0.95)/*reset*/
                drop[i]=0;
            drop[i]++;
        }
    }
    setInterval(drawMatrix,33);
</script>
</body>
</html>